如何在AngularJS中检测onKeyUp?
我正在寻找类似于ngChange的’ngOnkeyup’指令,但是找不到合适的东西。
如果没有这样的指令,是否有一种从浏览器本地onkeyup事件调用控制器的干净方法?
编辑:请参阅下面的maklemenz的第二个答案,它引用了新的内置ng-keyup指令
您可以使用angular-ui库:
使用angular-ui,您可以
<input ui-event="{keyup: 'myFn($event)'}"
如果您不想使用其他库,最有效且最简单的方法是:
JS
myApp.directive('onKeyup', function() { return function(scope, elm, attrs) { elm.bind("keyup", function() { scope.$apply(attrs.onKeyup); }); }; });
HTML:
<input on-keyup="count = count + 1">
编辑 :如果要检测按下了哪个键,则实际上有两个基本选项。您可以在指令中添加属性以处理指令中允许的键,也可以将按下的键传递给控制器。我通常会建议该指令处理key方法。
这是两种方式的示例:http : //jsfiddle.net/bYUa3/2